home *** CD-ROM | disk | FTP | other *** search
/ Merciful 5 / Merciful - Disc 5.iso / software / p / pcqpascalv1.2d.lha / Include / Libraries / AmigaGuide.i next >
Encoding:
Text File  |  1997-05-07  |  9.2 KB  |  263 lines

  1.  
  2. {$I "Include:Exec/Types.i"}
  3. {$I "Include:Exec/Lists.i"}
  4. {$I "Include:Exec/Nodes.i"}
  5. {$I "Include:exec/Semaphores.i"}
  6. {$I "Include:Intuition/Intuition.i"}
  7. {$I "Include:Intuition/Screens.i"}
  8. {$I "Include:Intuition/ClassUsr.i"}
  9. {$I "Include:DOS/DOS.i"}
  10. {$I "Include:Utility/TagItem.i"}
  11. {$I "Include:Libraries/AmigaGuideBaseVar.i"}
  12.  
  13. const
  14.  APSH_TOOL_ID           = 11000;
  15.  StartupMsgID           = (APSH_TOOL_ID+1) ;      { Startup message }
  16.  LoginToolID            = (APSH_TOOL_ID+2) ;      { Login a tool SIPC port }
  17.  LogoutToolID           = (APSH_TOOL_ID+3) ;      { Logout a tool SIPC port }
  18.  ShutdownMsgID          = (APSH_TOOL_ID+4) ;      { Shutdown message }
  19.  ActivateToolID         = (APSH_TOOL_ID+5) ;      { Activate tool }
  20.  DeactivateToolID       = (APSH_TOOL_ID+6) ;      { Deactivate tool }
  21.  ActiveToolID           = (APSH_TOOL_ID+7) ;      { Tool Active }
  22.  InactiveToolID         = (APSH_TOOL_ID+8) ;      { Tool Inactive }
  23.  ToolStatusID           = (APSH_TOOL_ID+9) ;      { Status message }
  24.  ToolCmdID              = (APSH_TOOL_ID+10);      { Tool command message }
  25.  ToolCmdReplyID         = (APSH_TOOL_ID+11);      { Reply to tool command }
  26.  ShutdownToolID         = (APSH_TOOL_ID+12);      { Shutdown tool }
  27.  
  28. { Attributes accepted by GetAmigaGuideAttr() }
  29.  AGA_Dummy              = (TAG_USER)   ;
  30.  AGA_Path               = (AGA_Dummy+1);
  31.  AGA_XRefList           = (AGA_Dummy+2);
  32.  AGA_Activate           = (AGA_Dummy+3);
  33.  AGA_Context            = (AGA_Dummy+4);
  34.  
  35.  AGA_HelpGroup          = (AGA_Dummy+5);
  36.     { (ULONG) Unique identifier }
  37.  
  38.  AGA_Reserved1          = (AGA_Dummy+6);
  39.  AGA_Reserved2          = (AGA_Dummy+7);
  40.  AGA_Reserved3          = (AGA_Dummy+8);
  41.  
  42.  AGA_ARexxPort          = (AGA_Dummy+9);
  43.     { (struct MsgPort *) Pointer to the ARexx message port (V40) }
  44.  
  45.  AGA_ARexxPortName      = (AGA_Dummy+10);
  46.    { (STRPTR) Used to specify the ARexx port name (V40) (not copied) }
  47.  
  48. Type
  49.     AMIGAGUIDECONTEXT = Address;
  50.  
  51.  AmigaGuideMsg = Record
  52.     agm_Msg     : Message;                      { Embedded Exec message structure }
  53.     agm_Type    : Integer;                      { Type of message }
  54.     agm_Data    : APTR;                         { Pointer to message data }
  55.     agm_DSize,                                  { Size of message data }
  56.     agm_DType,                                  { Type of message data }
  57.     agm_Pri_Ret,                                { Primary return value }
  58.     agm_Sec_Ret : Integer;                      { Secondary return value }
  59.     agm_System1,
  60.     agm_System2 : APTR;
  61.  end;
  62.  AmigaGuideMsgPtr = ^AmigaGuideMsg;
  63.  
  64. { Allocation description structure }
  65.   NewAmigaGuide = Record
  66.     nag_Lock  : BPTR;                           { Lock on the document directory }
  67.     nag_Name  : String;                         { Name of document file }
  68.     nag_Screen : ScreenPtr;                     { Screen to place windows within }
  69.     nag_PubScreen,                              { Public screen name to open on }
  70.     nag_HostPort,                               { Application's ARexx port name }
  71.     nag_ClientPort,                             { Name to assign to the clients ARexx port }
  72.     nag_BaseName  : String;                     { Base name of the application }
  73.     nag_Flags  : Integer;                       { Flags }
  74.     nag_Context: Address;                       { NULL terminated context table }
  75.     nag_Node   : String;                        { Node to align on first (defaults to Main) }
  76.     nag_Line   : Integer;                       { Line to align on }
  77.     nag_Extens : Address;                       { Tag array extension }
  78.     nag_Client : Address;                       { Private! MUST be NULL }
  79.   END;
  80.   NewAmigaGuidePtr = ^NewAmigaGuide;
  81.  
  82. CONST
  83. { public Client flags }
  84.     HTF_LOAD_INDEX = 0;                 { Force load the index at init time }
  85.     HTF_LOAD_ALL   = 2;                 { Force load the entire database at init }
  86.     HTF_CACHE_NODE = 3;                 { Cache each node as visited }
  87.     HTF_CACHE_DB   = 8;                 { Keep the buffers around UNTIL expunge }
  88.     HTF_UNIQUE     = 32768;             { Unique ARexx port name }
  89.     HTF_NOACTIVATE = 65536;             { Don't activate window }
  90.  
  91.     HTFC_SYSGADS   = $80000000;
  92.  
  93. { Callback function ID's }
  94.     HTH_OPEN       = 0;
  95.     HTH_CLOSE      = 1;
  96.  
  97.     HTERR_NOT_ENOUGH_MEMORY       =  100;
  98.     HTERR_CANT_OPEN_DATABASE      =  101;
  99.     HTERR_CANT_FIND_NODE          =  102;
  100.     HTERR_CANT_OPEN_NODE          =  103;
  101.     HTERR_CANT_OPEN_WINDOW        =  104;
  102.     HTERR_INVALID_COMMAND         =  105;
  103.     HTERR_CANT_COMPLETE           =  106;
  104.     HTERR_PORT_CLOSED             =  107;
  105.     HTERR_CANT_CREATE_PORT        =  108;
  106.     HTERR_KEYWORD_NOT_FOUND       =  113;
  107.  
  108. Type
  109. { Cross reference node }
  110.   XRef = Record
  111.     xr_Node   : Node;             { Embedded node }
  112.     xr_Pad    : WORD;             { Padding }
  113.     xr_DF     : Address;          { Document defined in }
  114.     xr_File,                      { Name of document file }
  115.     xr_Name   : String;           { Name of item }
  116.     xr_Line   : Integer;          { Line defined at }
  117.    END;
  118.    XRefPtr = ^XRef;
  119.  
  120. CONST
  121. { Types of cross reference nodes }
  122.     XR_GENERIC     = 0;
  123.     XR_FUNCTION    = 1;
  124.     XR_COMMAND     = 2;
  125.     XR_INCLUDE     = 3;
  126.     XR_MACRO       = 4;
  127.     XR_STRUCT      = 5;
  128.     XR_FIELD       = 6;
  129.     XR_TYPEDEF     = 7;
  130.     XR_DEFINE      = 8;
  131.  
  132. Type
  133. { Callback handle }
  134.    AmigaGuideHost = Record
  135.     agh_Dispatcher  : Hook;         { Dispatcher }
  136.     agh_Reserved,                 { Must be 0 }
  137.     agh_Flags,
  138.     agh_UseCnt      : Integer;                   { Number of open nodes }
  139.     agh_SystemData,                        { Reserved for system use }
  140.     agh_UserData    : APTR;                  { Anything you want... }
  141.    END;
  142.    AmigaGuideHostPtr = ^AmigaGuideHost;
  143.  
  144. CONST
  145. { Methods }
  146.     HM_FindNode    = 1 ;
  147.     HM_OpenNode    = 2 ;
  148.     HM_CloseNode   = 3 ;
  149.     HM_Expunge     = 10;              { Expunge DataBase }
  150.  
  151. Type
  152. { HM_FindNode }
  153.    opFindHost = Record
  154.     MethodID  : Integer;
  155.     ofh_Attrs : Address;           {  R: Additional attributes }
  156.     ofh_Node,                    {  R: Name of node }
  157.     ofh_TOC,                     {  W: Table of Contents }
  158.     ofh_Title,                   {  W: Title to give to the node }
  159.     ofh_Next,                    {  W: Next node to browse to }
  160.     ofh_Prev  : String;                    {  W: Previous node to browse to }
  161.    END;
  162.    opFindHostPtr = ^opFindHost;
  163.  
  164. { HM_OpenNode, HM_CloseNode }
  165.    opNodeIO = Record
  166.     MethodID  : Integer;
  167.     onm_Attrs : Address;          {  R: Additional attributes }
  168.     onm_Node,                    {  R: Node name AND arguments }
  169.     onm_FileName,                {  W: File name buffer }
  170.     onm_DocBuffer : String;               {  W: Node buffer }
  171.     onm_BuffLen : Integer;                  {  W: Size of buffer }
  172.     onm_Flags : Integer;                    { RW: Control flags }
  173.    END;
  174.    opNodeIOPtr = ^opNodeIO;
  175.  
  176. CONST
  177. { onm_Flags }
  178.     HTNF_KEEP      = 0; { Don't flush this node UNTIL database is
  179.                                  * closed. }
  180.     HTNF_Reserved1 = 2 ; { Reserved for system use }
  181.     HTNF_Reserved2 = 4 ; { Reserved for system use }
  182.     HTNF_ASCII     = 8 ; { Node is straight ASCII }
  183.     HTNF_Reserved3 = 16; { Reserved for system use }
  184.     HTNF_CLEAN     = 32; { Remove the node from the database }
  185.     HTNF_DONE      = 64; { Done with node }
  186.  
  187. { onm_Attrs }
  188.     HTNA_Dummy     = TAG_USER;
  189.     HTNA_Screen    = (TAG_USER + 1);  { Screen that window resides in }
  190.     HTNA_Pens      = (TAG_USER + 2);  { Pen array (from DrawInfo) }
  191.     HTNA_Rectangle = (TAG_USER + 3);  { Window box }
  192.  
  193.     HTNA_HelpGroup = (HTNA_Dummy+5);  { (ULONG) unique identifier }
  194.  
  195.  
  196. Type
  197. { HM_Expunge }
  198.   opExpungeNode = Record
  199.     MethodID  : Integer;
  200.     oen_Attrs : Address;          {  R: Additional attributes }
  201.   END;
  202.   opExpungeNodePtr = ^opExpungeNode;
  203.  
  204. { --- functions in V40 or higher (Release 3.1) --- }
  205.  
  206. FUNCTION LockAmigaGuideBase(handle : Address ) : Integer;
  207.     External;
  208.  
  209. PROCEDURE UnlockAmigaGuideBase(key : Integer);
  210.     External;
  211.  
  212. FUNCTION OpenAmigaGuideA(nag : NewAmigaGuidePtr; TagList : Address) : AmigaGuideContext;
  213.     External;
  214.  
  215. FUNCTION OpenAmigaGuideAsyncA(nag : NewAmigaGuidePtr; TagList : Address) : AmigaGuideContext;
  216.     External;
  217.  
  218. PROCEDURE CloseAmigaGuide(cl : AmigaGuideContext);
  219.     External;
  220.  
  221. FUNCTION AmigaGuideSignal(cl : AmigaGuideContext) : Integer;
  222.     External;
  223.  
  224. FUNCTION GetAmigaGuideMsg(cl : AmigaGuideContext) : AmigaGuideMsgPtr;
  225.     External;
  226.  
  227. PROCEDURE ReplyAmigaGuideMsg(amsg : AmigaGuideMsgPtr);
  228.     External;
  229.  
  230. FUNCTION SetAmigaGuideContextA(cl : AmigaGuideContext; ID : Integer; TagList : Address;) : Integer;
  231.     External;
  232.  
  233. FUNCTION SendAmigaGuideContextA(cl, TagList : Address) : Integer;
  234.     External;
  235.  
  236. FUNCTION SendAmigaGuideCmdA(cl : AmigaGuideContext; cmd : String; TagList : Address) : Integer;
  237.     External;
  238.  
  239. FUNCTION SetAmigaGuideAttrsA(cl : AmigaGuideContext; TagList : Address) : Integer;
  240.     External;
  241.  
  242. FUNCTION GetAmigaGuideAttr(T : Tag;cl : AmigaGuideContext; Storage : Address) : Integer;
  243.     External;
  244.  
  245. FUNCTION LoadXRef(l : Address; Name : String) : Integer;
  246.     External;
  247.  
  248. PROCEDURE ExpungeXRef;
  249.     External;
  250.  
  251. FUNCTION AddAmigaGuideHostA(h : HookPtr; name : String; TagList : Address) : Address;
  252.     External;
  253.  
  254. FUNCTION RemoveAmigaGuideHostA(hh : Address; TagList : Address ) : Integer;
  255.     External;
  256.  
  257. FUNCTION GetAmigaGuideString( ID : Integer ) : String;
  258.     External;
  259.  
  260.  
  261.  
  262.  
  263.